home *** CD-ROM | disk | FTP | other *** search
- (defun member (e list)
- (while (and list (not (equal e (car list))))
- (setq list (cdr list)))
- list )
-
- (defun print-autoloads ()
- (let ((files (cdr (member "print-autoloads" command-line-args)))
- ;; kludge for broken v19 emacs. it's supposed to accept
- ;; t in autoloads to mean 'macro but it doesn't. this
- ;; kludge will screw people who try to byte-compile VM
- ;; with emacs18 for emacs19.
- (macro-flag (if (string-match "^19" emacs-version) ''macro t))
- sexp function doc interactive macro)
- (setq expanded-files (mapcar (function expand-file-name) files))
- (while files
- (set-buffer (find-file-noselect (car expanded-files)))
- (goto-char (point-min))
- (condition-case nil
- (while t
- (setq sexp (read (current-buffer)))
- (if (and (consp sexp) (cdr sexp)
- (or (eq (car sexp) 'defun)
- (eq (car sexp) 'defmacro)))
- (progn
- (if (eq (car sexp) 'defmacro)
- (setq macro macro-flag)
- (setq macro nil))
- (setq sexp (cdr sexp)
- function (car sexp)
- sexp (cdr (cdr sexp)))
- (if (stringp (car sexp))
- (setq doc (car sexp)
- sexp (cdr sexp))
- (setq doc nil))
- (if (and (consp (car sexp))
- (eq (car (car sexp)) 'interactive))
- (setq interactive t)
- (setq interactive nil))
- (if (string-match "\\.el$" (car files))
- (setq file (substring (car files) 0 -3))
- (setq file (car files)))
- (print (list 'autoload (list 'quote function) file
- doc interactive macro)))))
- (end-of-file nil))
- (kill-buffer (current-buffer))
- (setq files (cdr files)
- expanded-files (cdr expanded-files))))
- (kill-emacs))
-